Added half completed implementation, excluding board specific things