re-organized methods