cleaned up all code, added attrs to salesengine class, put private in basic classes, used symbol to proc throughout