slight refactoring, potentially prepare moving to async task
prototype
slight refactoring, potentially prepare moving to async task
report error