First complete implementation