refactor and develop method chains