massive updates to functionality