initial implementation
doco