simplify everything, introduce class loader