Improvements and layout selection

- Made the asynchronous stuff more manageable
- Added the ability to have multiple layouts