Moved controller into it's own package