First version with documentation