initial implementation
fixes