revamping source code (ie taking Hartl work and reworking it)