project creation / edit + minor refactoring