made factory more generic, all shapes are now registered, fixed linter error :cool: