Final project for EC504