newInstance used throughout in place of constructors; for testing purposes.