refactor well.
phase I refactor complete.