first impl of tman