Implementation of Methods.
Merge from Michl