marked functional stuff as TODO