starting work on trait/interface