Modularised and added a build