Lots of homework reading for the OP here:

HERE

HERE, too..

and HERE as well..


Steve