Finish initial implementation