converted to theremax... got some recursive stuffs