abstract activity needs work, but is towrks for now