significant re-structuring to make the code more consistent and to remove redundancies