mostly done with basic build