Slowly working this implementation out