implement shelfe instead of shove db. add a feature calculation class