add init method, add documentation