migrated to alchemy.js component