Better naming convetion, organization and documentation