Added a specification interface + started cleaning up headers