reorganize things, add specs