Finalizing initial version

1) Changed file names to idimatic ones
2) Added tests for all features
3) Completed class signature