some basic code will be used as lib