Removed abstraction to increase speed