remove set/get arguments, implement type detection