Make some screen parts more reusable and use it to enhance project screen logic