moved all remaining function to handle_cast