Added basic functionality without any mutable states
Added the missing files with the basic functionallity