major changes, added ace and test