Split component from project

`As_project.Component` is a little bit too long for a name. Also various minor refactorings I have on my `dev` branch.