Further wrapper implementation and refactor