Working Implementation

Some functionality missing...

Empty()