first commit with code still in development and lot of TODO things