Changed inline definition file names
Using copy and swap semantics for constructors
Added iterator implementation