Moved all project parameter checking logic into one method
moved hooks into $self
Updated/organized TODO