input/output
inheritance