Fixes #20, created a app facade and optimised it