[feat] added layer generic factory implementation