still need to improve position and size implementation,  with new code style