Created new implementation for version 2