implement list constrain and position