refine self placement workflow, add validations, and fix some bugs