Optimized memory usage, cleaned up api.