Finish implementation and testing. Missing exceptions and order code.