initial complete implementation...