Initial implementation using fragments