fixed psoitioning func