moving tests around and cleaning up the project structure
adding facade for multiple platforms