rewrite
refactor and develop method chains