fix position bug in private constructor