finished programming principles