refactored according to lightning talk