ball: add implementation file