Refactored with meaningful names. Deprecated old versions