decoupling from 'astro'
encapsulate functions into module
injecting 'astro' per ctor
final check in after refactoring