refactors and adds a little more arm