maked it parametrized from outside