refactor + cleanup
refacor + cleanup