works with typescript and crud