draft report; type refactor